1. Field of the Invention
The present invention relates to modems, more particularly to high-speed modems employing far-end echo cancellation.
2. State of the Art
One of the primary ways in which modems differ is in the speed with which they can transfer data. For many years, modem speeds (measured in bits per second, bps) have been continually increasing. Currently, the most popular modem speeds are 2400 and 9600 bps, although the number of 14,400 bps modems installed is growing rapidly. Any modem faster than 2400 bps is currently considered high-speed. As modems have become faster and more complex, standards set by the CCITT (International Consultative Committee on Telegraphy and Telephony) have become increasingly important. Currently, the fastest CCITT standard for modems is v.32bis, which provides for full-duplex communications at 14,400 bps. A forthcoming standard, "v.fast", is expected shortly and will allow modems that comply with the standard to communicate at 28,800 bps. Meanwhile, an unofficial "standard", "v.32terbo", has been developed to allow modems to communicate at 16,000 and 19,200 bps. All of the other characteristics of v.32terbo modems are the same as in v.32bis modems.
Because of imperfect impedance matching between the telephone network and both modems (the near-end modem and the far-end modem) on either end of a modem connection, part of the signal sent by a modem is reflected, first at the near-end and then again at the far-end, producing two different echo signals. These echo signals combine with the signal sent from the opposite modem. For reliable high-speed communications, these echo signals must be removed from the received signal, a process known as echo cancellation. A near-end echo canceller cancels the first-occurring near-end echo signal, and a far-end echo canceller cancels the subsequently-occurring far-end echo signal.
The time between when a modem sends a signal and the time at which a far-end echo of that signal is received at the modem is referred to as the round-trip delay time. During set-up of a high-speed modem connection, a training sequence is executed during which the round-trip delay time is estimated and the far-end echo canceller is trained so as to accurately approximate the characteristics of the echo transmission path. Far-end echo cancellation is then performed by taking the same signal sent to the far-end, delaying it by an amount equal to the round-trip delay time, varying the signal in the far-end echo canceller in the same manner as the signal would be varied along the echo transmission path, thereby producing a signal that is nearly identical to the echo signal, and subtracting this signal from the received signal.
Delaying the signal to simulate the round-trip delay has typically been performed using bulk memory, a semiconductor memory in which data representing the signals sent are successively stored and later successively mad out in the manner of a digital delay line. The delay between when a particular piece of data is stored in bulk memory and when that particular piece of data is read out of memory is equal to the round-trip delay time.
A known v.32bis modem with far-end echo canceller is shown in FIG. 1. A bit stream to be transmitted is input to a scrambler 11 which randomizes the data and inputs it to a serial-to-parallel converter 13. In the serial-to-parallel converter, the data bits are grouped into six-bit symbols. The four least-significant bits are input directly to a signal element map 19 which maps the data to points in the signal constellation. The two most-significant bits are input to a differential encoder 15, which differentially encodes which quadrant of the signal constellation the symbol occupies. The two-bit output signal of the differential encoder is input to a convolutional encoder 17, which produces a three-bit output signal having one bit of redundancy as compared to the two-bit input signal. The three-bit output signal from the convolution encoder is input to the signal element map 19 along with the four least-significant bits of the symbol. (The term trellis encoding is used to refer to the overall encoding of the symbol in the manner just described.) The symbol is then mapped to a point in the signal constellation, and the modulator 21 performs the appropriate modulation to send the symbol over the wire.
The seven-bit quantity input to the signal element map 19 is also stored in bulk memory 23 and later read out (after the round-trip delay time) and input to a duplicate signal element map 19'. The output signal from the signal element map 19' is input to a far-end echo canceller 25. As previously described, the signal is varied in the far-end echo canceller in the same manner as the signal would be varied along the echo transmission path, thereby producing a signal that is nearly identical to the echo signal, and this signal is then subtracted from the received signal.
In the case of a v.32terbo modem, a data rate of 16,000 bps requires eight trellis-encoded bits to represent a symbol to be transmitted, the least-significant five bits of which are input directed to the signal element map 19 and the most-significant three bits of which are input to the signal element map from the convolutional encoder 17. An eight-bit quantity may be conveniently stored in bulk memory for later input to the duplicate signal element map 19' and to the far-end echo canceller 25. A data rate of 19,200 bps, however, again requires one extra bit that is input directly to the signal element map 19 for a total of nine bits. Without complicated and expensive circuitry for bit manipulation, each symbol then requires two bytes of storage in bulk memory, doubling the required size of bulk memory. Doubling the size of bulk memory has a significant adverse impact on device size and cost.
What is needed, then, is a way to efficiently utilize bulk memory in a high-speed modem such as a v.32terbo modem.